home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / answers / graphics / faq next >
Encoding:
Text File  |  1993-06-28  |  40.6 KB  |  989 lines

  1. Newsgroups: comp.graphics,news.answers,comp.answers
  2. Path: senator-bedfellow.mit.edu!enterpoop.mit.edu!usc!elroy.jpl.nasa.gov!ufo!cerberus!grieggs
  3. From: grieggs@jpl-devvax.jpl.nasa.gov (John T. Grieggs)
  4. Subject: (28Jun93) comp.graphics Frequently Asked Questions (FAQ)
  5. Message-ID: <1993Jun29.035507.11731@jpl-devvax.jpl.nasa.gov>
  6. Followup-To: poster
  7. Originator: grieggs@cerberus
  8. Sender: usenet@jpl-devvax.jpl.nasa.gov (For NNTP so rrn will be able to post)
  9. Nntp-Posting-Host: cerberus
  10. Reply-To: grieggs <grieggs@jpl-devvax.jpl.nasa.gov>
  11. Organization: Jet Propulsion Laboratory, Pasadena, CA
  12. Date: Tue, 29 Jun 1993 03:55:07 GMT
  13. Approved: news-answers-request@MIT.edu
  14. Expires: Tue, 13 Jul 1993 03:55:07 GMT
  15. Lines: 971
  16. Xref: senator-bedfellow.mit.edu comp.graphics:41169 news.answers:9792 comp.answers:1143
  17.  
  18. Archive-name: graphics/faq
  19.  
  20. This message is posted once a week or so in an effort to cut down on the
  21. repetitive junk in comp.graphics.  It was last changed on 28Jun93.  If you
  22. have answers to other frequently asked questions that you would like included
  23. in this posting, please send me mail.  If you don't want to see this posting
  24. every week, please add the subject line to your kill file.  Thank you.
  25.  
  26. If your copy of the FAQ is more than a couple of weeks old, you may want to
  27. seek out the most recent version.  The latest version of this FAQ is always
  28. available on rtfm.mit.edu as pub/usenet/news.answers/graphics/faq.
  29.  
  30. ---
  31. _john
  32.  
  33.     John Grieggs grieggs@jpl-devvax.jpl.nasa.gov JohnG@portal.com
  34. ---
  35. Last update: 28Jun93
  36.  
  37. What's new?
  38.  
  39. New version of GNU ghostscript (cristy@magick.es.dupont.com).
  40.  
  41. New book in section 1) (hollasch@kpc.com).
  42.  
  43. Re-write of section 2) (hollasch@kpc.com and grieggs@jpl-devvax.jpl.nasa.gov).
  44.  
  45.         grieggs@jpl-devvax.jpl.nasa.gov
  46.  
  47.  
  48.  
  49. Contents:
  50.  
  51.     1) General references for graphics questions.
  52.     2) Drawing three-dimensional objects on a two-dimensional screen.
  53.     3) Quantizing 24 bit images down to 8 bits.
  54.     4) Converting color into grayscale.
  55.     5) Quantizing grayscale to black&white.
  56.     6) Rotating a raster image by an arbitrary angle.
  57.     7) Free image manipulation software.
  58.     8) Format documents for TIFF, IFF, BIFF, NFF, OFF, FITS, etc.
  59.     9) Converting between vector formats.
  60.     10) How to get Pixar films.
  61.     11) How do I draw a circle as a Bezier (or B-spline) curve?
  62.     12) How to order standards documents.
  63.     13) How to FTP by email.
  64.     14) How to tell whether a point is within a planar polygon.
  65.     15) How to tessellate a sphere.
  66.     16) Specific references on ray-tracing and global illumination.
  67.     17) SIGGRAPH information online
  68.     18) SIGGRAPH Panels Proceedings available
  69.     19) Graphics mailing lists
  70.     20) Specific references on file formats
  71.     21) What about GIF?
  72.     22) What is morphing?
  73.     23) How to ray-trace height fields
  74.     24) How to find the area of a 3D polygon
  75.     25) How to join ACM/SIGGRAPH
  76.     26) Where can I find MRI and CT scan volume data?
  77.     27) Specific references on spatial data structures including quadtrees
  78.     and octrees
  79.     28) Where can I get a program to plot XY(Z) data or f(x) data?
  80.     29) Specific references on PEX and PHIGS
  81.     30) SIGGRAPH Online Bibliography Project
  82.  
  83.  
  84. 1) General references for graphics questions:
  85.  
  86.     Computer Graphics: Principles and Practice (2nd Ed.), J.D. Foley,
  87.     A. van Dam, S.K. Feiner, J.F. Hughes, Addison-Wesley 1990, ISBN
  88.     0-201-12110-7
  89.     Procedural Elements for Computer Graphics, David F. Rogers, McGraw
  90.     Hill 1985, ISBN 0-07-053534-5
  91.     Mathematical Elements for Computer Graphics 2nd Ed., David F. Rogers
  92.     and J. Alan Adams, McGraw Hill 1990, ISBN 0-07-053530-2
  93.     Three Dimensional Computer Graphics, Alan Watt, Addison-Wesley 1990, ISBN
  94.     0-201-15442-0
  95.     An Introduction to Ray Tracing, Andrew Glassner (ed.), Academic Press
  96.     1989, ISBN 0-12-286160-4
  97.     Graphics Gems, Andrew Glassner (ed.), Academic Press 1990, ISBN
  98.     0-12-286165-5
  99.     Graphics Gems II, James Arvo (ed.), Academic Press 1991, ISBN
  100.     0-12-64480-0
  101.     Graphics Gems III, David Kirk (ed.), Academic Press 1992, ISBN
  102.     0-12-409670-0 (with IBM disk) or 0-12-409671-9 (with Mac disk)
  103.     Digital Image Warping, George Wolberg, IEEE Computer Society Press
  104.     Monograph 1990, ISBN 0-8186-8944-7
  105.     Digital Image Processing (2nd Ed.), Rafael C. Gonzalez, Paul Wintz,
  106.     Addison-Wesley 1987, ISBN 0-201-11026-1
  107.     A Programmer's Geometry, Adrian Bowyer, John Woodwark, Butterworths 1983,
  108.     ISBN 0-408-01242-0 Pbk
  109.     Advanced Animation and Rendering Techniques, Alan Watt, Mark Watt,
  110.       Addison-Wesley 1992, ISBN 0-201-54412-1
  111.  
  112. An automatic mail handler at Brown University allows users of "Computer
  113. Graphics: Principles and Practice," by Foley, van Dam, Feiner, and
  114. Hughes, to obtain text errata and information on distribution of the
  115. software packages described in the book.  Also, users can send the
  116. authors feedback, to report text errors and software bugs, make
  117. suggestions, and submit exercises.  To receive information describing
  118. how you can use the mail handler, simply mail graphtext@cs.brown.edu
  119. and put the word "Help" in the Subject line.  Use the Subject line
  120. "Software-Distribution" to receive information specifically concerning
  121. the software packages SRGP and SPHIGS.
  122.  
  123. Errata for "An Introduction to Ray Tracing" is available on
  124. wuarchive.wustl.edu in graphics/graphics/books/IntroToRT.errata.
  125.  
  126. Errata for "Digital Image Warping" is in the same directory as
  127. "Digital-Image-Warping.errata".
  128.  
  129. All C code from the "Graphics Gems" series is available via anonymous ftp
  130. from princeton.edu.  Look in the directory pub/Graphics/GraphicsGems for
  131. the various volumes (Gems, GemsII, GemsIII), and get the README file first.
  132.  
  133. Errata to _Graphics Gems_ and _Graphics Gems II is available on
  134. wuarchive.wustl.edu in graphics/graphics/books.
  135.  
  136. A list of computer graphics, computational geometry and image processing
  137. journals is available from Juhana Kouhia, jk87377@cs.tut.fi.
  138.  
  139.  
  140. 2) Drawing three-dimensional objects on a two-dimensional screen.
  141.  
  142. There are many ways to do this.  Some approaches map the viewing rectangle
  143. onto the scene, by shooting rays through each pixel center and assigning
  144. color according to the object hit by the ray.  Other approaches map the
  145. scene onto the viewing rectangle, by drawing each object into the region,
  146. keeping track of which object is in front of which.
  147.  
  148. The mapping mentioned above is also referred to as a "projection", and the
  149. two most popular projections are perspective projection and parallel
  150. projection.  For example, to do a parallel projection of a scene onto a
  151. viewing rectangle, you can just discard the Z coordinate (divide by depth),
  152. and "clip" the objects to the viewing rectangle (discard portions that lie
  153. outside the region).
  154.  
  155. For details on 3D rendering, the Foley, van Dam, Feiner and Hughes book,
  156. "Computer Graphics: Principles and Practice" would be a good place to start
  157. reading.  Chapter 6 is "Viewing in 3D", and chapter 15 is "Visible-Surface
  158. Determination".  For more information go to chapter 16 for shading, chapter
  159. 19 for clipping, and branch out from there.
  160.  
  161.  
  162. 3) Quantizing 24 bit images down to 8 bits.
  163.  
  164. Find a copy of "Color Image Quantization for Frame Buffer Display" by
  165. Paul Heckbert, SIGGRAPH '82 Proceedings, page 297.  There are other
  166. algorithms, but this one works well and is fairly simple.  Implementations
  167. are included in most raster toolkits (see item 7 below).
  168.  
  169. A variant method is described in "Graphics Gems", p. 287-293.  Note that
  170. the code from the "Graphics Gems" series is all available from an FTP site,
  171. as described above.
  172.  
  173. Check out John Bradley's "Diversity Algorithm", which is incorporated into
  174. the xv package and described in the back of the manual.
  175.  
  176. The ImageMagick package (see section 7 for where it is) contains another
  177. quantizing algorithm which is presented as "doing a better job than the
  178. other algorithms, but slower".
  179.  
  180. There's also an implementation of:
  181.  
  182. Wan, Wong, and Prusinkiewicz, _An Algorithm for Multidimensional Data
  183. Clustering_, Transactions on Mathematical Software, Vol. 14 #2 (June, 1988),
  184. pp. 153-162.
  185.  
  186. avialable as princeton.edu:pub/Graphics/colorquant.shar.  This code,
  187. in modified form, appears in the Utah Raster Toolkit as well.
  188.  
  189.  
  190. 4) Converting color into grayscale.
  191.  
  192. The NTSC formula is:
  193.  
  194.     luminosity = .299 red + .587 green + .114 blue
  195.  
  196.  
  197. 5) Quantizing grayscale to black&white.
  198.  
  199. The only reference you need for this stuff is:
  200.  
  201.     Digital Halftoning, Robert Ulichney, MIT Press 1987, ISBN 0-262-21009-6
  202.  
  203. But before you go off and start coding, check out the image manipulation
  204. software mentioned in item 7 below.  All of the packages mentioned can do
  205. some form of gray to b&w conversion.
  206.  
  207.  
  208. 6) Rotating a raster image by an arbitrary angle.
  209.  
  210. The obvious but wrong method is to loop over the pixels in the source
  211. image, transform each coordinate, and copy the pixel to the destination.
  212. This is wrong because it leaves holes in the destination.  Instead,
  213. loop over the pixels in the destination image, apply the *reverse*
  214. transformation to the coordinates, and copy that pixel from the source.
  215. This method is quite general, and can be used for any one-to-one
  216. 2-D mapping, not just rotation.  You can add anti-aliasing by doing
  217. sub-pixel sampling.
  218.  
  219. However, there is a much faster method, with antialising included,
  220. which involves doing three shear operations.  The method was originally
  221. created for the IM Raster Toolkit (see below); an implementation is
  222. also present in PBMPLUS.  Reference: "A Fast Algorithm for Raster
  223. Rotation", by Alan Paeth (awpaeth@watcgl.waterloo.edu) Graphics
  224. Interface '86 (Vancouver).  An article on the IM toolkit appears in
  225. the same journal.  An updated version of the rotation paper appears
  226. in "Graphics Gems" (see section [1]) under the original title.
  227.  
  228.  
  229. 7) Free image manipulation software.
  230.  
  231. There are a number of toolkits for converting from one image format to
  232. another, doing simple image manipulations such as size scaling, plus
  233. the above-mentioned 24 -> 8, color -> gray, gray -> b&w conversions.
  234. Here are pointers to some of them:
  235.  
  236.     xv by John Bradley.  X-based image display, manipulation, and format
  237.     conversion package.  XV displays many image formats and permits editing
  238.     of GIF files, among others. The program was updated 5/92; see the file
  239.     contrib/xv-3.00.tar.Z on export.lcs.mit.edu.
  240.  
  241.     PBMPLUS, by Jef Poskanzer.  Comprehensive format conversion and image
  242.     manipulation package.  The latest version is always available via
  243.     anonymous FTP as ftp.ee.lbl.gov:pbmplus*.tar.Z,
  244.     wuarchive.wustl.edu:graphics/graphics/packages/pbmplus/pbmplus*.tar.Z,
  245.     and export.lcs.mit.edu:contrib/pbmplus*.tar.Z.
  246.  
  247.     IM Raster Toolkit, by Alan Paeth (awpaeth@watcgl.uwaterloo.ca).
  248.     Provides a portable and efficient format and related toolkit.  The
  249.     format is versatile in supporting pixels of arbitrary channels,
  250.     components, and bit precisions while allowing compression and machine
  251.     byte-order independence.  The kit contains more than 50 tools with
  252.     extensive support of image manipulation, digital halftoning and format
  253.     conversion.  Previously distributed on tape c/o the University of
  254.     Waterloo, an FTP version will appear someday.
  255.  
  256.     Utah RLE Toolkit.  Conversion and manipulation package, similar to
  257.     PBMPLUS.  Available via FTP as cs.utah.edu:pub/urt-*,
  258.     princeton.edu:pub/Graphics/urt-*, and freebie.engin.umich.edu:pub/urt-*.
  259.  
  260.     Fuzzy Pixmap Manipulation, by Michael Mauldin <mlm@nl.cs.cmu.edu>.
  261.     Conversion and manipulation package, similar to PBMPLUS.  Version 1.0
  262.     available via FTP as nl.cs.cmu.edu:/usr/mlm/ftp/fbm.tar.Z,
  263.     ftp.uu.net:pub/fbm.tar.Z, and ucsd.edu:graphics/fbm.tar.Z.
  264.  
  265.     Img Software Set, by Paul Raveling <raveling@venera.isi.edu>.  Reads and
  266.     writes its own image format, displays on an X11 screen, and does some
  267.     image manipulations.  Version 1.3 is available via FTP as
  268.     export.lcs.mit.edu:contrib/img_1.3.tar.Z, and
  269.     venera.isi.edu:pub/img_1.3.tar.Z along with a large collection of color
  270.     images.
  271.  
  272.     Xim, X Image Manipulator, by Philip R. Thompson.  It does essential
  273.     interactive image manipulations and uses x11r4 and the OSF/Motif toolkit
  274.     for the interface.  It supports images in 1, 8, 24 and 32 bit formats.
  275.     Reads/writes and converts to/from GIF, xwd, xbm, tiff, rle, xim, and
  276.     other formats.  Writes level 2 postscript.  Other utilities and image
  277.     application library are included.  Not a paint package.  Available via
  278.     ftp from gis.mit.edu.
  279.  
  280.     xloadimage, by Jim Frost <madd@std.com>.  Reads in images in various
  281.     formats and displays them on an X11 screen.  Available via FTP as
  282.     export.lcs.mit.edu:contrib/xloadimage*, and in your nearest comp.sources.x
  283.     archive.
  284.  
  285.     xli, by Grame Gill, is an updated xloadimage with numerous improvements
  286.     in both speed and in the number of formats supported.  Available in the
  287.     same places as xloadimage (contrib tape, comp.sources.x archives).
  288.  
  289.     TIFF Software, by Sam Leffler <sam@okeeffe.berkeley.edu>.  Nice
  290.     portable library for reading and writing TIFF files, plus a few tools
  291.     for manipulating them and reading other formats.  Available via FTP as
  292.     ucbvax.berkeley.edu:pub/tiff/*.tar.Z or ftp.uu.net:graphics/tiff.tar.Z
  293.  
  294.     xtiff, an X11 tool for viewing a TIFF file.  It was written to handle
  295.     as many different kinds of TIFF files as possible while remaining
  296.     simple, portable and efficient.  xtiff illustrates some common problems
  297.     with building pixmaps and using different visual classes.  It is
  298.     distributed as part of Sam Leffler's libtiff package and it is also
  299.     available on export.lcs.mit.edu, ftp.uu.net and comp.sources.x.
  300.     xtiff 2.0 was announced in 4/91; it includes Xlib and Xt versions.
  301.  
  302.     ALV, a Sun-specific image toolkit.  Version 2.0.6 posted to
  303.     comp.sources.sun on 11dec89.  Also available via email to
  304.     alv-users-request@cs.bris.ac.uk.
  305.  
  306.     popi, an image manipulation language.  Version 2.1 posted to
  307.     comp.sources.misc on 12dec89.
  308.  
  309.     ImageMagick, an X11 package for display and interactive manipulation
  310.     of images.  Includes tools for image conversion, annotation, compositing,
  311.     animation, and creating montages.  ImageMagick can read and write many of
  312.     the more popular image formats.  Available via FTP as
  313.     export.lcs.mit.edu:contrib/ImageMagick.tar.Z.
  314.  
  315.     Khoros, a huge (~100 meg) graphical development environment based on
  316.     X11R4.  Khoros components include a visual programming language, code
  317.     generators for extending the visual language and adding new application
  318.     packages to the system, an interactive user interface editor, an
  319.     interactive image display package, an extensive library of image and
  320.     signal processing routines, and 2D/3D plotting packages.  Available via
  321.     FTP as pprg.eece.unm.edu:pub/khoros/*.
  322.  
  323.     LaboImage, a SunView-based image processing and analysis package.  It
  324.     includes more than 200 image manipulation, processing and measurement
  325.     routines, on-line help, plus tools such as an image editor, a color
  326.     table editor and several biomedical utilities.  Available via anonymous
  327.     FTP on nic.funet.fi in /pub/graphics/packages.
  328.  
  329.     The San Diego Supercomputer Center Image Tools, software tools for
  330.     reading, writing, and manipulating raster images.  Binaries for some
  331.     machines available via anonymous FTP in sdsc.edu:sdscpub.
  332.  
  333.     The Independent JPEG Group has written a package for reading and
  334.     writing JPEG files.  FTP to ftp.uu.net:graphics/jpeg/jpegsrc.v?.tar.Z
  335.  
  336. Don't forget to set binary mode when you FTP tar files.  For you MILNET
  337. folks who still don't have name servers, the IP addresses are:
  338.  
  339.     cs.utah.edu            128.110.4.21
  340.     coral.cs.jcu.edu.au        137.219.17.4
  341.     export.lcs.mit.edu        18.24.0.12
  342.     freebie.engin.umich.edu    141.212.103.21
  343.     ftp.ee.lbl.gov        128.3.112.20
  344.     ftp.uu.net            137.39.1.9 or 192.48.96.9
  345.     gis.mit.edu            18.80.1.118
  346.     gondwana.ecr.mu.oz.au    128.250.70.62
  347.     karazm.math.uh.edu        129.7.7.6
  348.     marsh.cs.curtin.edu.au    134.7.1.1
  349.     nic.funet.fi        128.214.6.100
  350.     ftp.ncsa.uiuc.edu        141.142.20.50
  351.     nl.cs.cmu.edu        128.2.222.56
  352.     rtfm.mit.edu        18.70.0.224
  353.     pprg.eece.unm.edu        129.24.24.10
  354.     princeton.edu        128.112.128.1
  355.     sdsc.edu            132.249.20.22
  356.     telva.ccu.uniovi.es        156.35.31.31
  357.     ucbvax.berkeley.edu        128.32.133.1
  358.     venera.isi.edu        128.9.0.32
  359.     weedeater.math.yale.edu    128.36.23.17
  360.     wuarchive.wustl.edu        128.252.135.4
  361.     zamenhof.cs.rice.edu    128.42.1.75
  362.  
  363. Please do *not* post or mail messages saying "I can't FTP, could someone
  364. mail this to me?"  There are a number of automated mail servers that will
  365. send you things like this in response to a message.  See item 13 below for
  366. details on some.
  367.  
  368. Also, the newsgroup alt.graphics.pixutils is specifically for discussion
  369. of software like this.  You may find useful information there.
  370.  
  371.  
  372. 8) Format documents for TIFF, IFF, BIFF, NFF, OFF, FITS, etc.
  373.  
  374. You almost certainly don't need these.  Read the above item 7 on free
  375. image manipulation software.  Get one or more of these packages and
  376. look through them.  Chances are excellent that the image converter you
  377. were going to write is already there.  But if you still want one of the
  378. format documents, many such files are available by anonymous ftp from
  379. zamenhof.cs.rice.edu in directory pub/graphics.formats.
  380.  
  381. These files were collected off the net and are believed to be correct.
  382. This archive includes pixel formats, and two- and three-dimensional object
  383. formats.  The future of this archive is uncertain at the moment, as Mark
  384. Hall <foo@cs.rice.edu> will apparently no longer be maintaining it.
  385.  
  386. A second graphics file format archive is now being actively maintained
  387. by Quincey Koziol (koziol@ncsa.uiuc.edu).  The latest version exists at
  388. ftp.ncsa.uiuc.edu in /misc/file.formats/graphics.formats.  Apparently,
  389. neither of these is complete, you might want to check both.
  390.  
  391. FITS stands for Flexible Image Transport System. It's a file format most
  392. often used in astronomy.  Despite the name, it can contain not only images
  393. but other things as well.  There is a regular monthly FITS basics and
  394. information posting on sci.astro.fits - read it if you want to know more.
  395.  
  396. Yet a third graphics file format archive was spotted on telva.ccu.uniovi.es.
  397.  
  398.  
  399. 9) Converting between vector formats.
  400.  
  401. A lot of people ask about converting from HPGL to PostScript, or MacDraw
  402. to CGM, or whatever.  It is important to understand that this is a very
  403. different problem from the image format conversions in item 7.  Converting
  404. one image format to another is a fairly easy problem, since once you
  405. get past all the file header junk, a pixel is a pixel -- the basic objects
  406. are the same for all image formats.  This is not so for vector formats.
  407. The basic objects -- circles, ellipses, drop-shadowed pattern-filled
  408. round-cornered rectangles, etc. -- vary from one format to another.
  409. Except in extremely restricted cases, it is simply not possible to do
  410. a one-to-one conversion between vector formats.
  411.  
  412. There is software for converting to and from CGM files on ftp.psc.edu.  The
  413. contributor states that it runs on Unix, MS-Windows, and possibly the Mac.
  414. A better, more specific blurb would be most welcome.
  415.  
  416. On the other hand, it is quite possible to do a close approximation,
  417. rendering an image from one format using the primitives from another.
  418. As far as I know, no one has put together a general toolkit of such
  419. converters, but two different HPGL to PostScript converters have been
  420. posted to comp.sources.misc.  Check the index on your nearest archive
  421. site.
  422.  
  423. A related frequent question is how to convert from some vector format
  424. to a bitmapped image - from PostScript to Sun raster format, or HPGL to
  425. X11 bitmap.  For example, some of the commercial PostScript clones for
  426. PC's allow you to render to a disk file as well as a printer.  Also,
  427. the PostScript interpreters in the NeXT box and in Sun's X11/NeWs can
  428. be used to render to a file if you're clever.  But in general, the
  429. answer is no.  However, if someone were to put together a vector to
  430. vector conversion toolkit, adding a vector to raster converter would be
  431. trivial.
  432.  
  433. GNU ghostscript (from the FSF - current version 2.6.1) includes
  434. drivers for both ppm and gif format files, thus it can be used as
  435. a PostScript to ppm  or a PostScript to GIF filter.  (It implements
  436. essentially all of PostScript level 1 and alot of Display PostScript
  437. and level 2).
  438.  
  439.  
  440. 10) How to get Pixar films.
  441.  
  442. The various John Lasseter / Pixar computer animated shorts are available
  443. on video tape.  You can order them from Direct Cinema Limited:
  444.  
  445.     Film                           Individual Price      Institutional Price
  446.     Luxo, Jr.                $14.95            $50.00
  447.     Red's Dream                $19.95            $75.00
  448.     Tin Toy                $24.95            $75.00
  449.     Knickknack                $24.95            $75.00
  450.     Luxo, Jr./Red's Dream/Tin Toy    $39.95            $100.00
  451.  
  452. All tapes are on 1/2" VHS NTSC.  Add $10/tape for PAL format.  Also
  453. available:
  454.  
  455.     Tin Toy T-shirt            $15.00
  456.     Knickknack 3D T-shirt        $15.00 (includes glasses)
  457.  
  458. For individual orders, add $5 S&H for the first tape or shirt, $2 for
  459. each additional tape or shirt.  For institutional orders, add $5 S&H
  460. for the first tape, $3 for each additional tape.  Foreign shipping, add
  461. $3/tape or shirt.  Call 800-525-0000 (213-396-4774 international,
  462. 213-396-3233 FAX) to charge to your credit card.  Call first to verify
  463. prices and availability.  Or, just write to:
  464.  
  465.     Direct Cinema Limited
  466.     1749 14th Street
  467.     Santa Monica, CA 90404-4342
  468.  
  469. Allan Braunsdorf has this to say:
  470.  
  471. At SIGGRAPH they were selling a tape with all four shorts
  472. for $25.  That was a sale price.  You can get it for slightly
  473. more than that normally.  ($35 maybe.)  I believe it's
  474. available from RenderMan Retail (at Pixar's address).
  475.  
  476.     Pixar
  477.     1001 West Cutting Blvd.
  478.     Richmond, CA. 94804
  479.     (510) 236-4000 
  480.     (510) 236-0388 (FAX)
  481.  
  482. You can obtain a video directly from Pixar which contains "Luxo, Jr.", "Red's
  483. Dream", "Tin Toy" and "Knicknack" for $25.00, plus $2.50 for shipping. They
  484. will take your order over the phone or via FAX with a major credit card. I 
  485. ordered mine just last week and received it several days later. Don't expect 
  486. to be able to rent a copy from your local video store. According to the license
  487. agreement printed on the back cover of the case, it cannot be rented.
  488.  
  489.  
  490. 11) How do I draw a circle as a Bezier (or B-spline) curve?
  491.  
  492. The short answer is, "You can't."  Unless you use a rational spline you
  493. can only approximate a circle.  The approximation may look acceptable,
  494. but it is sensitive to scale.  Magnify the scale and the error of
  495. approximation magnifies.  Deviations from circularity that were not
  496. visible in the small can become glaring in the large.  If you want to
  497. do the job right, consult the article:
  498.  
  499.   "A Menagerie of Rational B-Spline Circles"
  500.   by Leslie Piegl and Wayne Tiller
  501.   in IEEE Computer Graphics and Applications, volume 9, number 9,
  502.   September, 1989, pages 48-56.
  503.  
  504. For rough, non-rational approximations, consult the book:
  505.  
  506.   Computational Geometry for Design and Manufacture
  507.   by I. D. Faux and M. J. Pratt,
  508.   Ellis Horwood Publishers, Halsted Press, John Wiley 1980.
  509.  
  510. For the best known non-rational approximations, consult the article:
  511.  
  512.   "Good Approximation of Circles by Curvature-continuous Bezier Curves"
  513.   by Tor Dokken, Morten Daehlen, Tom Lyche, and Knut Morken
  514.   in Computer Aided Geometric Design, volume 7, numbers 1-4 (combined),
  515.   June, 1990, pages 33-41 [Elsevier Science Publishers (North-Holland)]
  516.  
  517.  
  518. 12) How to order standards documents.
  519.  
  520. The American National Standards Institute sells ANSI standards, and also
  521. ISO (international) standards.  Their sales office is at 1-212-642-4900,
  522. mailing address is 1430 Broadway, NY NY 10018.  It helps if you have the
  523. complete name and number.
  524.  
  525. Some useful numbers to know:
  526.  
  527. CGM (Computer Graphics Metafile) is ISO 8632-4 (1987).  GKS (Graphical
  528. Kernel System) is ANSI X3.124-1985.  PHIGS (Programmer's Hierarchical
  529. Interactive Graphics System) is ANSI X3.144-1988.  IGES is ASME/ANSI
  530. Y14.26M-1987.  Language bindings are often separate but related numbers;
  531. for example, the GKS FORTRAN binding is X3.124.1-1985.
  532.  
  533. Standards-in-progress are made available at key milestones to solicit
  534. comments from the graphical public (this includes you!).  ANSI can let
  535. you know where to order them; most are available from Global Engineering
  536. at 1-800-854-7179.
  537.  
  538.  
  539. 13) How to FTP by email.
  540.  
  541. There are a number of sites that archive the Usenet sources newsgroups
  542. and make them available via an email query system.  You send a message
  543. to an automated server saying something like "send comp.sources.unix/fbm",
  544. and a few hours or days later you get the file in the mail.
  545.  
  546. In addition, there is at least one FTP-by-mail server.  Send mail to
  547. ftpmail@decwrl.dec.com saying "help" and it will tell you how to use
  548. it.  Note that this service has at times been turned off due to abuse.
  549.  
  550.  
  551. 14) How to tell whether a point is within a planar polygon.
  552.  
  553. Consider a ray originating at the point of interest and continuing to
  554. infinity.  If it crosses an odd number of polygon edges along the way,
  555. the point is within the polygon.  If the ray crosses an even number of
  556. edges, the point is either outside the polygon, or within an interior
  557. hole formed from intersecting polygon edges.  This idea is known in
  558. the trade as the Jordan curve theorem; see Eric Haines' article in
  559. Glassner's ray tracing book (above) for more information, including
  560. treatment of special cases.
  561.  
  562. Another method is to sum the absolute angles from the point to all
  563. the vertices on the polygon.  If the sum is 2 pi, the point is inside,
  564. if the sum is 0 the point is outside.  However, this method is about an
  565. order of magnitude slower than the previous method because evaluating the
  566. trigonometric functions is usually quite costly.
  567.  
  568. Code for both methods (plus barycentric triangle testing) can be found in
  569. the Ray Tracing News, Vol. 5, No. 3, available from princeton.edu:
  570. pub/Graphics/RTNews/RTNv5n3.Z.
  571.  
  572.  
  573. 15) How to tessellate a sphere.
  574.  
  575. One simple way is to do recursive subdivision into triangles.  The
  576. base of the recursion is an octahedron, and then each level divides
  577. each triangle into four smaller ones.  Jon Leech <leech@cs.unc.edu>
  578. has posted a nice routine called sphere.c that generates the coordinates.
  579. It's available for FTP on ftp.ee.lbl.gov and princeton.edu.
  580.  
  581. 16) Specific references on ray-tracing and global illumination.
  582.  
  583. Rick Speer maintains a cross-indexed ray-tracing bibliography:
  584.  
  585. Highlights of this edition-
  586.  
  587.     i) more than 500 citations spanning the period from 1968 through
  588.        November '91;
  589.     ii) papers from all Siggraph, Graphics Interface, Eurographics, CG
  590.         International and Ausgraph proceedings through December, '91;
  591.     iii) all citations keyworded for easy lookup;
  592.     iv) cross-indices by keyword and author;
  593.     v)  glossary of the 119 keywords used.
  594.  
  595. The bib is in the form of a PostScript file.  The printout is 41 pages long.
  596. Below is a list of ftp sites and the dirs that contain the file. It's named
  597. "speer.raytrace.bib.ps.Z" and is compressed at most sites-
  598.  
  599.              Site                             Dir
  600.     wuarchive.wustl.edu    graphics/graphics/bib/RT.BIB.Speer/
  601.     karazm.math.uh.edu    pub/Graphics/
  602.     gondwana.ecr.mu.oz.au    pub/papers/
  603.     nic.funet.fi        pub/sci/papers/graphics
  604.     coral.cs.jcu.edu.au     graphics/papers/
  605.  
  606. Eric Haines (erich@eye.com) maintains ray tracing and radiosity/global
  607. illumination bibliographies.  These are in "refer" format, and so can be
  608. searched electronically (a simple awk script to search for keywords is
  609. included with each).  The bibliographies are available at most of the
  610. sites listed above, and the most current versions are maintained at
  611. princeton.edu: pub/Graphics/Papers as "RayBib.*" and "RadBib.*".
  612.  
  613. Tom Wilson (twilson@dab.ge.com) has collected over 300 abstracts from ray
  614. tracing related research papers and books.  The information is essentially
  615. in plaintext, and Latex and troff formatting programs are included.  This
  616. collection is available at most of the sites above as "rtabs.*".
  617.  
  618. 17) SIGGRAPH information online
  619.  
  620. [from Steve Cunningham and Ralph Orlick]
  621.  
  622. ACM-SIGGRAPH announces its online information site at  siggraph.org
  623. (128.248.245.250).  This site now provides SIGGRAPH information via both
  624. anonymous ftp and an electronic mail archive server.
  625.  
  626. The anonymous ftp service is very standard, and the ftp directory includes
  627. both conference and publications subdirectories.
  628.  
  629. To retrieve information by electronic mail, send mail to
  630.      archive-server@siggraph.org
  631. and in the subject or the body of the message include the message  send
  632. followed by the topic and subtopic you wish.  A good place to start is with
  633. the command
  634.      send index
  635. which will give you an up-to-date list of available information.
  636.  
  637.  
  638. 18) SIGGRAPH Panels Proceedings available
  639.  
  640. [from Steve Cunningham and Bob Judd]
  641.  
  642. ACM SIGGRAPH announces the availability of the SIGGRAPH '91 Panels Proceedings
  643. at the  siggraph.org  site (128.248.245.250).  The proceedings are available
  644. in three formats:
  645.      text   (ASCII)
  646.      rtf    (rich text format, suitable for many word processors)
  647.      word   (MS Word for the Macintosh)
  648. They may be retrieved from siggraph.org in two ways:
  649.  
  650. (1) by anonymous ftp
  651.     change to one of the directories
  652.        publications/s91/panels_proceedings/[text|rtf|word]
  653.     The text and rtf files may be downloaded in ASCII mode, while the word
  654.     files are stored in MacBinary format and must be downloaded in binary 
  655.     mode.
  656.  
  657.     Each directory contains a Table of Contents file (TOC) that describes the
  658.     contents of each panel file.
  659.  
  660. (2) by electronic mail
  661.     send mail to
  662.        archive-server@siggraph.org
  663.     You can retrieve either the  text  or  rtf  files.  We suggest that you
  664.     first retrieve the index files by putting one of the messages
  665.        send panel91-txt index
  666.        send panel91-rtf index
  667.     in the subject or body of the message.  You will get the necessary
  668.     information to retrieve the actual transcript files.
  669.  
  670.  
  671. 19) Graphics mailing lists
  672.  
  673. There are a variety of graphics-related mailing list out there, each
  674. covering either a single product or a single topic.  I have been an
  675. active participant in one of these for some time now, and find the
  676. focus and expertise which can be brought to bear on an isolated topic
  677. to be nothing short of amazing.
  678.  
  679. Please send me the appropriate information if you have any others you
  680. would like to see added.
  681.  
  682. Name:        Imagine mailing list
  683. Description:    Discussion forum for users of the Imagine 3D Rendering and
  684.         Animation package by Impulse, Inc.
  685. Platforms:    Amiga, IBM
  686. Subscription:    imagine-request@email.sp.paramax.com
  687. Posting:    imagine@email.sp.paramax.com
  688.  
  689. Name:        DCTV mailing list
  690. Description:    Discussion forum for users of the Digital Creations DCTV
  691.         box, software, and file formats
  692. Platforms:    Amiga
  693. Subscription:    DCTV-request@nova.cc.purdue.edu
  694. Posting:    DCTV@nova.cc.purdue.edu
  695.  
  696. Name:        Rayshade Users mailing list
  697. Description:    Discussion forum for users of the Rayshade raytracer
  698. Platforms:    Most UNIX boxes, Amiga, Mac, IBM
  699. Subscription:    rayshade-request@cs.princeton.edu
  700. Posting:    rayshade-users@cs.princeton.edu
  701.  
  702. Name:        Lightwave 3D software for Toaster mailing list
  703. Description:    Discussion forum for users of Lightwave, the Video
  704.         Toaster modelling and rendering package
  705. Platforms:    Amiga
  706. Subscription:    lightwave-request@bobsbox.rent.com
  707.         with "subscribe lightwave-l" in your message
  708. Posting:    lightwave@bobsbox.rent.com
  709.  
  710. Name:        POV mailing list
  711. Description:    Discussion forum for DKBTrace and POV renderers
  712. Platforms:    Unix
  713. Subscription:    listserv@trearn.bitnet
  714. Posting:    dkb-l@trearn.bitnet
  715.  
  716. Name:        Mailing List For Massive Parallel Rendering
  717. Description:    same?
  718. Platforms:    Unix
  719. Subscription:    mp-render-request@icase.edu
  720. Posting:    mp-render@icase.edu
  721.  
  722. 20) Specific references on file formats
  723.  
  724.     Graphics File Formats, David Kay and John Levine, Windcrest/McGraw-Hill
  725.       1992, ISBN 0-8306-3060-0 $36.95 hardcover, ISBN 0-8306-3059-7 $24.95
  726.       paper.  Comments - 26 formats, no software (this is good, IMHO - I
  727.       prefer books which are non-platform-dependent).  Questions about this
  728.       book may be sent to gbook@iecc.cambridge.ma.us.
  729.  
  730.  
  731. 21) What about GIF?
  732.  
  733. GIF stands for Graphics Interchange Format.  It is portable and usable upon
  734. a wide variety of platforms.  It is quite limited in some ways (yes, the
  735. keeper of the FAQ has some opinions after all), and in fact, I don't like
  736. it much.  However, it looks to me like the most-Frequently Asked Question
  737. which was not previously covered in this list.  The following is a list
  738. of newsgroups and the like where one could go to find out about GIF.
  739.  
  740. Subject: alt.binaries.pictures FAQ - General info
  741. Subject: alt.binaries.pictures FAQ - OS specific info
  742. Newsgroups: alt.binaries.pictures.d,alt.binaries.pictures.misc,
  743.     alt.binaries.pictures.utilities,alt.binaries.pictures.fractals,
  744.     alt.binaries.pictures.fine-art.d,news.answers
  745.  
  746. Available in the indicated USENET newsgroup(s), or via anonymous ftp from
  747. rtfm.mit.edu in the files:
  748.  
  749. /pub/usenet/news.answers/pictures-faq/part1
  750. /pub/usenet/news.answers/pictures-faq/part2
  751.  
  752. Also available from mail-server@rtfm.mit.edu by sending a mail
  753. message containing any or all of:
  754.  
  755. send usenet/news.answers/pictures-faq/part1
  756. send usenet/news.answers/pictures-faq/part2
  757.  
  758. Send a message containing "help" to get general information about the
  759. mail server.
  760.  
  761. Also, you could check out the resources described in sections 7, 8, and
  762. 20 above for more information.
  763.  
  764.  
  765. 22) What is morphing?
  766.  
  767. Warping is the deformation of an image by mapping each pixel to a new
  768. location. Morphing is blending from one image or object to another one.
  769. Valerie Hall has written an excellent introduction to warping and
  770. morphing. This is available for anonymous ftp from marsh.cs.curtin.edu.au
  771. in the directory pub/graphics/bibliography/Morph. There are three files:
  772.  
  773.         morph_intro.ps.Z     (PostScript version, many pictures - 1.5M)
  774.         morph_intro.txt.Z    (text version)
  775.         m_responses.Z        (Responses to morphing questions)
  776.  
  777. The files are compressed, so you must use binary transfer and
  778. uncompress them afterwards.
  779.  
  780.  
  781. 23) How to ray-trace height fields
  782.  
  783. Height fields are a special case in ray-tracing.  They have a number of uses,
  784. such as terrain rendering, and some optimization is possible.  Thus, they
  785. get their own FAQ section.  Note that further references can no doubt be
  786. located via the ray-tracing bibs in section 16 above.
  787.  
  788. The following paper seems to be the definitive reference:
  789.  
  790. F. Kenton Musgrave
  791. Grid Tracing: Fast Ray Tracing For Height Fields
  792. July, 1988
  793. <musg88.ps.Z>
  794.  
  795. This is available as "Research Report YALEU/DCS/RR-639" from Yale University,
  796. it's also in the SIGGRAPH '91 Fractal Modeling in 3D Computer Graphics and
  797. Imaging course notes, and (best of all) it's available on the net:
  798.  
  799.     nic.funet.fi        pub/sci/papers/musg88.ps.Z
  800.     weedeater.math.yale.edu    pub/Papers/musg88.ms.Z
  801.     princeton.edu        pub/Graphics/Papers/musg88.ms.Z
  802.     coral.cs.jcu.edu.au        graphics/papers/musg88.ps.Z
  803.     gondwana.ecr.mu.OZ.AU    pub/papers/musg88.ms.Z and musg88.ps.Z
  804.  
  805. An implementation of this paper may be found in Rayshade.
  806.  
  807. Another paper exists:
  808.  
  809. %A David W. Paglieroni
  810. %A Sidney M. Petersen
  811. %T Parametric Height Field Ray Tracing
  812. %J Proceedings of Graphics Interface '92
  813. %I Canadian Information Processing Society
  814. %C Toronto, Ontario
  815. %D May 1992
  816. %P 192-200
  817.  
  818. And still one more:
  819.  
  820. Musgrave, Kolb, and Mace
  821. "The Synthesis and Rendering of Eroded Fractal Terrains",
  822. Computer Graphics Vol 23, No. 3 (SIGGRAPH '89 procedings) p. 41-50
  823.  
  824.  
  825.  
  826. 24) How to find the area of a 3D polygon
  827.  
  828.     The area of a triangle is given by (in C notation),
  829.  
  830.      area = 0.5 * ( ( x[0] * y[1] ) + ( x[1] * y[2] ) + ( x[2] * y[0] ) -
  831.                 ( x[1] * y[0] ) - ( x[2] * y[1] ) - ( x[0] * y[2] ) );
  832.  
  833. and the area of a planar polygon is given by
  834.  
  835.      area = 0.0;
  836.  
  837.      for ( i = 0; i < n - 1; i++ )
  838.          area += ( x[i] * y[i + 1] ) - ( x[i + 1] * y[i] );
  839.      area += ( x[n - 1] * y[0] ) - ( x[0] * y[n - 1] );
  840.      area /= 2.0;
  841.  
  842. If the area is a negative number, the polygon or triangle is
  843. clockwise, if positive, it is counterclockwise.
  844.  
  845. >From Ronald Goldman's Gem (in Graphics Gems II - see section 1 above), "Area
  846.  of Planar Polygons and Volume of Polyhedra:"
  847.  
  848. The area of a polygon P0, P1, P2, ... Pn, not in the x-y plane, is
  849. given by
  850.  
  851.      Area(Polygon) = 1/2 * | N . Sigma { Pk x Pk+1 } |
  852.  
  853. where N is the unit vector normal to the plane and P is a polygonal
  854. vertex.  The . represents the dot product operator and the x
  855. represents the cross product operator.  Sigma represents the summation
  856. operator.  | | represents the absolute value operator.  Pn+1 is equal
  857. to P0.
  858.  
  859.  
  860. 25) How to join ACM/SIGGRAPH
  861.  
  862. Probably the easiest way to join ACM/SIGGRAPH is to trot over to your
  863. local technical library and find a copy of Communications of the ACM.
  864. Somewhere within the first few pages will be an application blank.
  865. Fill it out and mail it in.  ACM membership for students costs $23.00,
  866. Voting or Associate Membership $77.00 (yearly)
  867.  
  868. SIGGRAPH student membership costs an additional $16.00, $26.00 for
  869. Voting or Associate Members (also yearly).  To get TOG (Transactions
  870. on Graphics) it's another $26.00 for students and $31.00 for Voting or
  871. Associate Members.
  872.  
  873. If you just want to join SIGGRAPH without joining ACM, it'll cost you
  874. $59.00 (no student discount).
  875.  
  876. There are surcharges for overseas airmailing of publications.
  877.  
  878. ACM Member services may be contacted via email at acmhelp@acmvm.bitnet. 
  879. Their phone number is (212) 626-0500.  FAX number (212) 944-1318.
  880. Snailmail address:
  881.  
  882.                 ACM
  883.                 PO Box 12114
  884.                 Church Street Station
  885.                 New York, New York 10257
  886.  
  887. SIGGRAPH `93 will be held in Anaheim, California, at the Anaheim
  888. Convention Center (just up the street from Disneyland) on August 1-6, 1993.
  889.  
  890. 26) Where can I find MRI and CT scan volume data?
  891.  
  892. Volume data sets are available from the University of North Carolina at
  893. omicron.cs.unc.edu (152.2.128.159) in /pub/softlab/CHVRTD.  (Commerical
  894. use is prohibited.)
  895.  
  896. Head data - A 109-slice MRI data set of a human head.
  897.  
  898. Knee data - A 127-slice MRI data set of a human knee.
  899.  
  900. HIPIP data - The result of a quantum mechanical calculation of a SOD data
  901. of a one-electron orbital of HIPIP, an iron protein.
  902.  
  903. SOD data - An electron density map of the active site of SOD (superoxide
  904. dismutase). 
  905.  
  906. CT Cadaver Head data - A 113-slice MRI data set of a CT study of a cadaver
  907. head. 
  908.  
  909. MR Brain data -  A 109-slice MRI data set of a head with skull partially
  910. removed to reveal brain.
  911.  
  912. RNA data - An electron density map for Staphylococcus Aureus Ribonuclease.
  913.  
  914.  
  915. 27) Specific references on spatial data structures including quadtrees
  916.     and octrees
  917.  
  918. H. Samet,
  919. The Design and Analysis of Spatial Data Structures,
  920. Addison-Wesley, Reading, MA, 1990.
  921. ISBN 0-201-50255-0.
  922.  
  923. H. Samet,
  924. Applications of Spatial Data Structures:  Computer Graphics, Image Processing, a
  925. nd GIS,
  926. Addison-Wesley, Reading, MA, 1990.
  927. ISBN 0-201-50300-0.
  928.  
  929.  
  930. 28) Where can I get a program to plot XY(Z) data or f(x) data?
  931.  
  932. Gnuplot is a command-driven interactive data/function  plotting program.  It
  933. runs on just about any machine, and is very flexible in terms of supported
  934. output devices.  The official North American distribution site for the latest
  935. version is dartmouth.edu in /pub/gnuplot.  More information is available from
  936. the USENET newsgroup comp.graphics.gnuplot and its FAQ, graphics/gnuplot-faq.
  937.  
  938. ACE/gr (xmgr - Motif/xvgr - XView) is a data/function plotting tool for 
  939. workstations or X-terminals using X.  Available from ftp.ccalmr.ogi.edu
  940. in /CCALMR/pub/acegr.
  941.  
  942. robotx (Robot) is a general purpose plotting and data analysis program.
  943. Requires XView, X-terminal or workstation.  Available from sunsite.unc.edu
  944. in /pub/academic/data_analysis.
  945.  
  946. Xgraph is a popular two-dimensional plotting program that accepts data in a
  947. form similar to the unix program graph and displays line graphs, scatter plots,
  948. or bar charts on an X11 display.  Available from ic.berkeley.edu in /pub.
  949.  
  950. Drawplot is a program for drawing 2D plots on X10/X11 windows, SUNVIEW
  951. displays, or HP2648 terminals. Available from xcf.berkeley.edu in /src/local.
  952.  
  953. 29) Specific references on PEX and PHIGS
  954.  
  955.     PEXlib Programming Manual, Tom Gaskins, 1154 pages, O'Reilly & Associates,
  956.     ISBN 1-56592-028-7
  957.  
  958.     PEXlib Reference Manual, edited by Steve Talbott, 577 pages, O'Reilly &
  959.     Associates, ISBN 1-56592-029-5
  960.  
  961.     PHIGS Programming Manual, Tom Gaskins, 908 pages, O'Reilly & Associates,
  962.     ISBN 0-93775-85-4 (softcover), ISBN 0-937175-92-7 (casebound)
  963.  
  964.     PHIGS Reference Manual, edited by Linda Kosko, 1099 pages, O'Reilly &
  965.     Associates, ISBN 0-937175-91-9
  966.  
  967.     A Primer for PHIGS, Hopgood, Duce & Johnston, 298 pages, Wiley,
  968.     ISBN 0-471-93330-9
  969.  
  970. 30) SIGGRAPH Online Bibliography Project
  971.  
  972. The ACM SIGGRAPH Online Bibliography Project is a database of over 15,000
  973. unique computer graphics and computational geometry references in BibTeX
  974. format, available to the computer graphics community as a research and
  975. educational resource.
  976.  
  977. The database is located at "siggraph.org".  Users may download the BibTeX
  978. files via FTP and peruse them offline, or telnet to "siggraph.org" and log
  979. in as "biblio" and interactively search the database for entries of interest,
  980. by keyword.
  981.  
  982. Additions/corrections/suggestions may be directed to the admin,
  983. "bibadmin@siggraph.org".
  984. -- 
  985. John T. Grieggs (Telos @ Jet Propulsion Laboratory)
  986. 4800 Oak Grove Drive, Pasadena, Ca. 91109 M/S 525-3660    (818) 306-6506
  987. Uucp: {cit-vax,elroy,chas2}!jpl-devvax!grieggs
  988. Arpa: ...jpl-devvax!grieggs@cit-vax.ARPA
  989.